package cliente.vista;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;

import cliente.controle.GerenteControlador;
import cliente.controle.Sistema;
import cliente.modelo.Gerente;

public class GerenteView {

	private JFrame tela;
	private JButton botaoCriaCliente;
	private JButton botaoCriaGerente;
	private JButton botaoVerClientes;
	private JButton botaoVerGerentes;
	private JButton botaoTrocarSenha;
	private ActionListener ouvinte;
	private JButton botaoLogout;

	public void iniciaGerente() {
		tela = new JFrame();
		tela.setResizable(false);
		tela.setBounds(500, 300, 400, 200);
		tela.setTitle("Gerente");

		ouvinte = new acao();

		botaoCriaCliente = new JButton("Cria Cliente");
		botaoCriaCliente.addActionListener(ouvinte);
		botaoVerClientes = new JButton("Ver Clientes");
		botaoVerClientes.addActionListener(ouvinte);
		botaoVerGerentes = new JButton("Ver Gerentes");
		botaoVerGerentes.addActionListener(ouvinte);
		botaoCriaGerente = new JButton("Cria Gerente");
		botaoCriaGerente.addActionListener(ouvinte);
		botaoTrocarSenha = new JButton("Trocar Senha");
		botaoTrocarSenha.addActionListener(ouvinte);
		botaoLogout = new JButton("Logout");
		botaoLogout.addActionListener(ouvinte);

		tela.setLayout(new GridLayout(2, 2));
		tela.add(botaoCriaCliente);
		tela.add(botaoTrocarSenha);

		Sistema sistema = Sistema.getUnicaInstancia();
		if (sistema.getAtualId() == 1) // Se o gerente for o presidente, então
										// ele poderá criar gerentes
		{
			tela.add(botaoCriaGerente);
			tela.add(botaoVerGerentes);
		}

		tela.add(botaoVerClientes);
		tela.add(botaoLogout);

		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		tela.setVisible(true);
	}

	// Essa classe só passará os dados para a classe de controle adequada
	class acao implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent arg0) {
			if (arg0.getSource() == botaoCriaCliente) {
				CriaClienteView ccv = new CriaClienteView();
				ccv.iniciaCriaClienteView();
			} else if (arg0.getSource() == botaoVerClientes) {
				VerClientesView vc = new VerClientesView();
				try {
					vc.iniciaVerClientes();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			} else if (arg0.getSource() == botaoVerGerentes) {
				VerGerentesView vc = new VerGerentesView();
				try {
					vc.iniciaVerGerentes();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			} else if (arg0.getSource() == botaoCriaGerente) {
				CriaGerenteView cgv = new CriaGerenteView();
				cgv.iniciaCriaGerenteView();
			} else if (arg0.getSource() == botaoTrocarSenha) {
				Sistema sistema = Sistema.getUnicaInstancia();
				Gerente gerente = null;
				try {
					gerente = GerenteControlador.get(sistema.getAtualId());
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				TrocarSenhaGerenteView tsv = new TrocarSenhaGerenteView();
				tsv.iniciaTrocaSenha(gerente);
			} else if (arg0.getSource() == botaoLogout) {
				LoginView loginView = new LoginView();
				tela.dispose();
				loginView.telaLogin();
			}
		}
	}
}
